package org.dromara.common.core.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * 生成随机昵称
 * @author Starts
 */
public class NicknameGenerator {

    private static final List<String> PREFIXES = new ArrayList<>();
    private static final List<String> MIDDLES = new ArrayList<>();
    private static final List<String> SUFFIXES = new ArrayList<>();
    private static final Random RANDOM = new Random();

    static {
        // 增加更多前缀
        PREFIXES.add("小");
        PREFIXES.add("酷");
        PREFIXES.add("萌");
        PREFIXES.add("帅");
        PREFIXES.add("甜");
        PREFIXES.add("超");
        PREFIXES.add("靓");
        PREFIXES.add("暖");
        PREFIXES.add("野");
        PREFIXES.add("浪");

        // 增加更多中间部分
        MIDDLES.add("可爱");
        MIDDLES.add("阳光");
        MIDDLES.add("霸气");
        MIDDLES.add("温柔");
        MIDDLES.add("活泼");
        MIDDLES.add("神秘");
        MIDDLES.add("幽默");
        MIDDLES.add("文艺");
        MIDDLES.add("高冷");
        MIDDLES.add("搞怪");

        // 增加更多后缀
        SUFFIXES.add("仔");
        SUFFIXES.add("妹");
        SUFFIXES.add("宝");
        SUFFIXES.add("哥");
        SUFFIXES.add("姐");
        SUFFIXES.add("侠");
        SUFFIXES.add("客");
        SUFFIXES.add("君");
        SUFFIXES.add("星");
        SUFFIXES.add("霸");
    }

    public static String generateNickname() {
        String prefix = PREFIXES.get(RANDOM.nextInt(PREFIXES.size()));
        // 随机决定是否添加中间部分
        boolean hasMiddle = RANDOM.nextBoolean();
        String middle = hasMiddle? MIDDLES.get(RANDOM.nextInt(MIDDLES.size())) : "";
        String suffix = SUFFIXES.get(RANDOM.nextInt(SUFFIXES.size()));

        return prefix + middle + suffix;
    }

    public static void main(String[] args) {
        for (int i = 0; i < 5000; i++) {
            System.out.println(generateNickname());
        }
    }
}
